home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / M2011PWA.ZIP / NUV.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1994-04-21  |  14.5 KB  |  768 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  TINTEGER004(500)
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     Integer  INTEGER013
  35.     String   STRING001
  36.     String   STRING002
  37.     String   TSTRING003(140)
  38.     String   TSTRING004(22)
  39.     String   STRING005
  40.     String   STRING006
  41.     String   TSTRING007(40)
  42.     String   STRING008
  43.     String   STRING009
  44.     String   TSTRING010(500)
  45.     String   TSTRING011(500)
  46.     String   TSTRING012(500)
  47.     String   STRING013
  48.     String   STRING014
  49.     String   TSTRING015(500)
  50.  
  51. ;------------------------------------------------------------------------------
  52.  
  53.     TSTRING004(1) = PPEPath() + "MATRIX.CFG"
  54.     TSTRING004(2) = PPEPath() + "FORM.1"
  55.     TSTRING004(3) = PPEPath() + "FORM.2"
  56.     TSTRING004(4) = PPEPath() + "FORM.3"
  57.     TSTRING004(5) = PPEPath() + "FORM.4"
  58.     TSTRING004(6) = PPEPath() + "FORM.5"
  59.     TSTRING004(7) = PPEPath() + "CONFIG.1"
  60.     TSTRING004(8) = PPEPath() + "CONFIG.2"
  61.     TSTRING004(9) = PPEPath() + "CONFIG.3"
  62.     TSTRING004(10) = PPEPath() + "CONFIG.4"
  63.     TSTRING004(11) = PPEPath() + "CONFIG.5"
  64.     TSTRING004(15) = PPEPath() + "TEXT.CFG"
  65.     TSTRING004(21) = PPEPath() + "VOTING.SCR"
  66.     TSTRING004(22) = PPEPath() + "USERS.VOT"
  67.     If (Exist(TSTRING004(1)) == 0) Then
  68.         PrintLn "@X0FConfiguration File Missing... (MATRIX.CFG)"
  69.         PrintLn "@X0FPlease Report this to the Sysop!"
  70.         End
  71.     Endif
  72.     If (Exist(TSTRING004(15)) == 0) Then
  73.         PrintLn "@X0FText Configuration File Missing... (TEXT.CFG)"
  74.         PrintLn "@X0FPlease Report this to the Sysop!"
  75.         End
  76.     Endif
  77.     FOpen 15, TSTRING004(15), 0, 0
  78.     For INTEGER007 = 1 To 38
  79.         FGet 15, TSTRING007(INTEGER007)
  80.     Next
  81.     FClose 15
  82.     FOpen 1, TSTRING004(1), 0, 0
  83.     For INTEGER007 = 1 To 140
  84.         FGet 1, TSTRING003(INTEGER007)
  85.     Next
  86.     FClose 1
  87.     GetUser
  88.     If ((U_Sec < TSTRING003(93)) || (U_Sec > TSTRING003(94))) Then
  89.         End
  90.     Endif
  91.     Shell 1, INTEGER013, "DIR ", PPEPath() + "NUV\*.NUV /B >" + PPEPath() + "USERS.VOT"
  92.     FAppend 3, TSTRING004(22), 2, 0
  93.     FPutLn 3, "END"
  94.     FClose 3
  95.     BOOLEAN004 = 0
  96.     FOpen 4, TSTRING004(22), 0, 0
  97.     INTEGER007 = 0
  98.     :LABEL001
  99.     If (BOOLEAN004) Goto LABEL002
  100.     INTEGER007 = INTEGER007 + 1
  101.     FGet 4, TSTRING015(INTEGER007)
  102.     If (TSTRING015(INTEGER007) == "END") BOOLEAN004 = 1
  103.     Goto LABEL001
  104.     :LABEL002
  105.     FClose 4
  106.     INTEGER003 = 0
  107.     :LABEL003
  108.     If (BOOLEAN002) Goto LABEL009
  109.     INTEGER003 = INTEGER003 + 1
  110.     BOOLEAN002 = 0
  111.     BOOLEAN003 = 0
  112.     INTEGER011 = 0
  113.     INTEGER012 = 0
  114.     For INTEGER007 = 1 To 26
  115.         TSTRING011(INTEGER007) = ""
  116.         TSTRING012(INTEGER007) = ""
  117.         TSTRING010(INTEGER007) = ""
  118.     Next
  119.     If (Left(TSTRING015(INTEGER003), 3) == "END") Then
  120.         Color 15
  121.         AnsiPos 1, 25
  122.         End
  123.     Else
  124.         STRING005 = Upper(TSTRING015(INTEGER003))
  125.     Endif
  126.     STRING001 = ""
  127.     STRING002 = ""
  128.     STRING001 = PPEPath() + "NUV\" + STRING005
  129.     INTEGER007 = 1
  130.     While (((1 < 0) && (INTEGER007 >= Len(STRING001) - 4)) || ((1 >= 0) && (INTEGER007 <= Len(STRING001) - 4))) Do
  131.         STRING002 = STRING002 + Mid(STRING001, INTEGER007, 1)
  132.         INTEGER007 = INTEGER007 + 1
  133.     EndWhile
  134.     STRING002 = STRING002 + ".NFO"
  135.     FOpen 2, STRING001, 0, 0
  136.     FGet 2, STRING013
  137.     FGet 2, INTEGER008
  138.     FGet 2, INTEGER009
  139.     FGet 2, INTEGER010
  140.     FGet 2, INTEGER011
  141.     If (INTEGER011 <> 0) Then
  142.         For INTEGER007 = 1 To INTEGER011
  143.             FGet 2, TSTRING011(INTEGER007)
  144.         Next
  145.     Endif
  146.     FGet 2, INTEGER012
  147.     If (INTEGER012 <> 0) Then
  148.         For INTEGER007 = 1 To INTEGER012
  149.             FGet 2, TSTRING012(INTEGER007)
  150.         Next
  151.     Endif
  152.     FClose 2
  153.     If (Upper(TSTRING003(140)) <> Upper(U_Name())) Then
  154.         If (INTEGER011 > 0) Then
  155.             For INTEGER007 = 1 To INTEGER011
  156.                 If (U_Name() == Upper(TSTRING011(INTEGER007))) BOOLEAN003 = 1
  157.             Next
  158.         Endif
  159.     Else
  160.         INTEGER002 = 1
  161.     Endif
  162.     :LABEL004
  163.     If (BOOLEAN003) Goto LABEL008
  164.     Color 15
  165.     Cls
  166.     DispFile TSTRING004(21), 1
  167.     AnsiPos TSTRING003(101), TSTRING003(100)
  168.     Print TSTRING003(102) + STRING013
  169.     AnsiPos TSTRING003(104), TSTRING003(103)
  170.     Print TSTRING003(105) + INTEGER008
  171.     AnsiPos TSTRING003(107), TSTRING003(106)
  172.     Print TSTRING003(108) + INTEGER009
  173.     AnsiPos TSTRING003(110), TSTRING003(109)
  174.     Print TSTRING003(111) + INTEGER010
  175.     For INTEGER007 = 1 To TSTRING003(114)
  176.         AnsiPos TSTRING003(113) - 2, TSTRING003(112) + INTEGER007 - 1
  177.         If (TSTRING012(INTEGER007) <> "") Print TSTRING003(131) + TSTRING003(132) + "@X0F " + Left(TSTRING012(INTEGER007), TSTRING003(116) + Len(U_Name()))
  178.     Next
  179.     AnsiPos TSTRING003(119), TSTRING003(118)
  180.     Print TSTRING003(129) + TSTRING003(117)
  181.     INTEGER006 = 1
  182.     BOOLEAN001 = 0
  183.     :LABEL005
  184.     If (BOOLEAN003) Goto LABEL007
  185.     STRING006 = Inkey()
  186.     If (((Upper(STRING006) == "A") || (STRING006 == "LEFT")) || (STRING006 == "UP")) Then
  187.         If (INTEGER006 > 1) INTEGER006 = INTEGER006 - 1
  188.         If (INTEGER006 == 1) Then
  189.             AnsiPos TSTRING003(122), TSTRING003(121)
  190.             Print TSTRING003(130) + TSTRING003(120)
  191.             AnsiPos TSTRING003(119), TSTRING003(118)
  192.             Print TSTRING003(129) + TSTRING003(117)
  193.         Endif
  194.         If (INTEGER006 == 2) Then
  195.             AnsiPos TSTRING003(125), TSTRING003(124)
  196.             Print TSTRING003(130) + TSTRING003(123)
  197.             AnsiPos TSTRING003(122), TSTRING003(121)
  198.             Print TSTRING003(129) + TSTRING003(120)
  199.         Endif
  200.         If (INTEGER006 == 3) Then
  201.             AnsiPos TSTRING003(128), TSTRING003(127)
  202.             Print TSTRING003(130) + TSTRING003(126)
  203.             AnsiPos TSTRING003(125), TSTRING003(124)
  204.             Print TSTRING003(129) + TSTRING003(123)
  205.         Endif
  206.     Endif
  207.     If (((STRING006 == "RIGHT") || (STRING006 == "DOWN")) || (Upper(STRING006) == "Z")) Then
  208.         If (INTEGER006 < 4) INTEGER006 = INTEGER006 + 1
  209.         If (INTEGER006 == 2) Then
  210.             AnsiPos TSTRING003(119), TSTRING003(118)
  211.             Print TSTRING003(130) + TSTRING003(117)
  212.             AnsiPos TSTRING003(122), TSTRING003(121)
  213.             Print TSTRING003(129) + TSTRING003(120)
  214.         Endif
  215.         If (INTEGER006 == 3) Then
  216.             AnsiPos TSTRING003(122), TSTRING003(121)
  217.             Print TSTRING003(130) + TSTRING003(120)
  218.             AnsiPos TSTRING003(125), TSTRING003(124)
  219.             Print TSTRING003(129) + TSTRING003(123)
  220.         Endif
  221.         If (INTEGER006 == 4) Then
  222.             AnsiPos TSTRING003(125), TSTRING003(124)
  223.             Print TSTRING003(130) + TSTRING003(123)
  224.             AnsiPos TSTRING003(128), TSTRING003(127)
  225.             Print TSTRING003(129) + TSTRING003(126)
  226.         Endif
  227.     Endif
  228.     If (STRING006 == " ") Then
  229.         INTEGER006 = INTEGER006 + 1
  230.         If (INTEGER006 == 5) Then
  231.             INTEGER006 = 1
  232.             AnsiPos TSTRING003(128), TSTRING003(127)
  233.             Print TSTRING003(130) + TSTRING003(126)
  234.             AnsiPos TSTRING003(119), TSTRING003(118)
  235.             Print TSTRING003(129) + TSTRING003(117)
  236.             Goto LABEL006
  237.         Endif
  238.         If (INTEGER006 == 2) Then
  239.             AnsiPos TSTRING003(119), TSTRING003(118)
  240.             Print TSTRING003(130) + TSTRING003(117)
  241.             AnsiPos TSTRING003(122), TSTRING003(121)
  242.             Print TSTRING003(129) + TSTRING003(120)
  243.         Endif
  244.         If (INTEGER006 == 3) Then
  245.             AnsiPos TSTRING003(122), TSTRING003(121)
  246.             Print TSTRING003(130) + TSTRING003(120)
  247.             AnsiPos TSTRING003(125), TSTRING003(124)
  248.             Print TSTRING003(129) + TSTRING003(123)
  249.         Endif
  250.         If (INTEGER006 == 4) Then
  251.             AnsiPos TSTRING003(125), TSTRING003(124)
  252.             Print TSTRING003(130) + TSTRING003(123)
  253.             AnsiPos TSTRING003(128), TSTRING003(127)
  254.             Print TSTRING003(129) + TSTRING003(126)
  255.         Endif
  256.     Endif
  257.     :LABEL006
  258.     If ((INTEGER002 == 1) && (STRING006 == Chr(27))) Then
  259.         INTEGER006 = 5
  260.         BOOLEAN003 = 1
  261.     Endif
  262.     If (STRING006 == Chr(13)) Then
  263.         BOOLEAN003 = 1
  264.     Endif
  265.     Goto LABEL005
  266.     :LABEL007
  267.     Select Case (INTEGER006)
  268.         Case 1
  269.             INTEGER008 = INTEGER008 + 1
  270.             INTEGER011 = INTEGER011 + 1
  271.             Gosub LABEL019
  272.             Gosub LABEL015
  273.             BOOLEAN003 = 1
  274.         Case 2
  275.             INTEGER009 = INTEGER009 + 1
  276.             INTEGER011 = INTEGER011 + 1
  277.             Gosub LABEL019
  278.             Gosub LABEL015
  279.             BOOLEAN003 = 1
  280.         Case 3
  281.             INTEGER010 = INTEGER010 + 1
  282.             INTEGER011 = INTEGER011 + 1
  283.             Gosub LABEL015
  284.             BOOLEAN003 = 1
  285.         Case 4
  286.             Gosub LABEL010
  287.             BOOLEAN003 = 0
  288.         Case 5
  289.             BOOLEAN003 = 1
  290.     End Select
  291.     Goto LABEL004
  292.     :LABEL008
  293.     Goto LABEL003
  294.     :LABEL009
  295.     End
  296.     :LABEL010
  297.     If (Exist(STRING002) == 0) Then
  298.         Return
  299.     Else
  300.         FOpen 5, STRING002, 0, 0
  301.         BOOLEAN001 = 0
  302.         :LABEL011
  303.         If (BOOLEAN001) Goto LABEL012
  304.         FGet 5, STRING008
  305.         If (STRING008 == "END") BOOLEAN001 = 1
  306.         If (STRING008 == "000-555-000") Then
  307.             FGet 5, STRING008
  308.             If (STRING008 == 0) Return
  309.             For INTEGER007 = 1 To STRING008
  310.                 FGet 5, TSTRING010(INTEGER007)
  311.             Next
  312.             BOOLEAN001 = 1
  313.         Endif
  314.         Goto LABEL011
  315.         :LABEL012
  316.         FClose 5
  317.         Color 15
  318.         FOpen 5, TSTRING004(11), 0, 0
  319.         FGet 5, INTEGER005
  320.         For INTEGER007 = 1 To INTEGER005
  321.             FGet 5, STRING008
  322.             FGet 5, STRING008
  323.             FGet 5, TINTEGER004(INTEGER007 * 2)
  324.             FGet 5, TINTEGER004(INTEGER007 * 2 + 1)
  325.         Next
  326.         FClose 5
  327.     Endif
  328.     If (Exist(STRING002) == 0) Then
  329.         Return
  330.     Else
  331.         FOpen 5, STRING002, 0, 0
  332.         BOOLEAN001 = 0
  333.         :LABEL013
  334.         If (BOOLEAN001) Goto LABEL014
  335.         FGet 5, STRING008
  336.         If (STRING008 == "END") BOOLEAN001 = 1
  337.         If (STRING008 == "000-555-000") Then
  338.             FGet 5, STRING008
  339.             If (STRING008 == 0) Return
  340.             For INTEGER007 = 1 To STRING008
  341.                 FGet 5, TSTRING010(INTEGER007)
  342.             Next
  343.             BOOLEAN001 = 1
  344.         Endif
  345.         Goto LABEL013
  346.         :LABEL014
  347.         FClose 5
  348.         Color 15
  349.         Cls
  350.         FOpen 5, TSTRING004(11), 0, 0
  351.         FGet 5, INTEGER005
  352.         For INTEGER007 = 1 To INTEGER005
  353.             FGet 5, STRING008
  354.             FGet 5, STRING008
  355.             FGet 5, TINTEGER004(INTEGER007 * 2)
  356.             FGet 5, TINTEGER004(INTEGER007 * 2 + 1)
  357.         Next
  358.         FClose 5
  359.         Cls
  360.         DispFile TSTRING004(6), 1
  361.         If (TSTRING003(134) <> "") Then
  362.             TSTRING003(134) = "@X0F"
  363.         Endif
  364.         For INTEGER007 = 1 To INTEGER005
  365.             AnsiPos TINTEGER004(INTEGER007 * 2 + 1), TINTEGER004(INTEGER007 * 2)
  366.             Print TSTRING003(134) + TSTRING010(INTEGER007)
  367.         Next
  368.         AnsiPos 1, TSTRING003(133)
  369.         More
  370.         FClose 5
  371.     Endif
  372.     If (Upper(TSTRING003(140)) == Upper(U_Name())) Then
  373.         Gosub LABEL022
  374.     Endif
  375.     Return
  376.     :LABEL015
  377.     STRING001 = PPEPath() + "NUV\" + STRING005
  378.     Delete STRING001
  379.     FCreate 1, STRING001, 2, 0
  380.     FOpen 1, STRING001, 2, 0
  381.     FPutLn 1, STRING013
  382.     FPutLn 1, INTEGER008
  383.     FPutLn 1, INTEGER009
  384.     FPutLn 1, INTEGER010
  385.     FPutLn 1, INTEGER011
  386.     If (INTEGER011 == 1) Then
  387.         FPutLn 1, Upper(U_Name())
  388.         TSTRING011(1) = Upper(U_Name())
  389.     Else
  390.         For INTEGER007 = 1 To INTEGER011 - 1
  391.             FPutLn 1, TSTRING011(INTEGER007)
  392.         Next
  393.         FPutLn 1, Upper(U_Name())
  394.     Endif
  395.     If (INTEGER012 <> 0) Then
  396.         FPutLn 1, INTEGER012
  397.         For INTEGER007 = 1 To INTEGER012
  398.             FPutLn 1, TSTRING012(INTEGER007)
  399.         Next
  400.     Else
  401.         FPutLn 1, "0"
  402.     Endif
  403.     FClose 1
  404.     Gosub LABEL016
  405.     Return
  406.     :LABEL016
  407.     STRING014 = Upper(STRING013)
  408.     If (INTEGER008 >= TSTRING003(95)) Then
  409.         If (TSTRING003(99) == 0) Then
  410.             GetAltUser U_RecNum(STRING014)
  411.             U_Sec = TSTRING003(97)
  412.             PutUser
  413.             Delete STRING001
  414.             Delete STRING002
  415.             Goto LABEL017
  416.         Endif
  417.         For INTEGER007 = 1 To INTEGER011
  418.             If (Upper(TSTRING003(140)) == Upper(TSTRING011(INTEGER007))) Then
  419.                 GetAltUser U_RecNum(STRING014)
  420.                 U_Sec = TSTRING003(97)
  421.                 PutUser
  422.                 Delete STRING001
  423.                 Delete STRING002
  424.             Endif
  425.         Next
  426.     Endif
  427.     :LABEL017
  428.     If (INTEGER009 >= TSTRING003(96)) Then
  429.         If (TSTRING003(99) == 0) Then
  430.             GetAltUser U_RecNum(STRING014)
  431.             U_Sec = TSTRING003(98)
  432.             PutUser
  433.             Delete STRING001
  434.             Delete STRING002
  435.             Goto LABEL018
  436.         Endif
  437.         For INTEGER007 = 1 To INTEGER011
  438.             If (Upper(TSTRING003(140)) == Upper(TSTRING011(INTEGER007))) Then
  439.                 GetAltUser U_RecNum(STRING014)
  440.                 U_Sec = TSTRING003(98)
  441.                 PutUser
  442.                 Delete STRING001
  443.                 Delete STRING002
  444.             Endif
  445.         Next
  446.     Endif
  447.     :LABEL018
  448.     Return
  449.     :LABEL019
  450.     Color 15
  451.     AnsiPos 1, TSTRING003(135)
  452.     ClrEol
  453.     Print TSTRING007(37) + " "
  454.     BOOLEAN001 = 0
  455.     STRING008 = ""
  456.     :LABEL020
  457.     If (BOOLEAN001) Goto LABEL021
  458.     STRING008 = Inkey()
  459.     If (Len(STRING008)) Then
  460.         If (Upper(STRING008) == "Y") Then
  461.             Color 15
  462.             AnsiPos 1, TSTRING003(135)
  463.             ClrEol
  464.             Print TSTRING007(38)
  465.             TSTRING003(116) = TSTRING003(116) - Len(U_Name() - 6)
  466.             InputStr " _", STRING009, 15, TSTRING003(116), Mask_Ascii(), 0
  467.             If (STRING009 <> "") Then
  468.                 INTEGER012 = INTEGER012 + 1
  469.                 STRING008 = ""
  470.                 STRING008 = Upper(Left(U_Name(), 1))
  471.                 For INTEGER007 = 2 To Len(U_Name())
  472.                     If (Mid(U_Name(), INTEGER007, 1) == " ") Then
  473.                         STRING008 = STRING008 + Upper(Mid(U_Name(), INTEGER007, 2))
  474.                         INTEGER007 = INTEGER007 + 1
  475.                         Continue
  476.                     Endif
  477.                     STRING008 = STRING008 + Lower(Mid(U_Name(), INTEGER007, 1))
  478.                 Next
  479.                 STRING009 = TSTRING003(105) + STRING008 + " " + TSTRING003(131) + TSTRING003(132) + " " + STRING009
  480.                 TSTRING012(INTEGER012) = STRING009
  481.                 BOOLEAN001 = 1
  482.             Endif
  483.         Endif
  484.         If (Upper(STRING008) == "N") Then
  485.             AnsiPos 1, TSTRING003(135)
  486.             Color 15
  487.             ClrEol
  488.             BOOLEAN001 = 1
  489.         Endif
  490.     Endif
  491.     Goto LABEL020
  492.     :LABEL021
  493.     Return
  494.     :LABEL022
  495.     If (Exist(STRING002) == 0) Then
  496.         Return
  497.     Else
  498.         FOpen 5, STRING002, 0, 0
  499.         BOOLEAN001 = 0
  500.         :LABEL023
  501.         If (BOOLEAN001) Goto LABEL024
  502.         FGet 5, STRING008
  503.         If (STRING008 == "END") BOOLEAN001 = 1
  504.         If (STRING008 == "000-111-000") Then
  505.             FGet 5, STRING008
  506.             If (STRING008 == 0) Return
  507.             For INTEGER007 = 1 To STRING008
  508.                 FGet 5, TSTRING010(INTEGER007)
  509.             Next
  510.             BOOLEAN001 = 1
  511.         Endif
  512.         Goto LABEL023
  513.         :LABEL024
  514.         FClose 5
  515.         Color 15
  516.         FOpen 5, TSTRING004(7), 0, 0
  517.         FGet 5, INTEGER005
  518.         For INTEGER007 = 1 To INTEGER005
  519.             FGet 5, STRING008
  520.             FGet 5, STRING008
  521.             FGet 5, TINTEGER004(INTEGER007 * 2)
  522.             FGet 5, TINTEGER004(INTEGER007 * 2 + 1)
  523.         Next
  524.         FClose 5
  525.         FClose 5
  526.         Cls
  527.         DispFile TSTRING004(2), 1
  528.         If (TSTRING003(134) <> "") Then
  529.             TSTRING003(134) = "@X0F"
  530.         Endif
  531.         For INTEGER007 = 1 To INTEGER005
  532.             AnsiPos TINTEGER004(INTEGER007 * 2 + 1), TINTEGER004(INTEGER007 * 2)
  533.             Print TSTRING003(134) + TSTRING010(INTEGER007)
  534.         Next
  535.         AnsiPos 1, TSTRING003(133)
  536.         More
  537.         FClose 5
  538.     Endif
  539.     If (Exist(STRING002) == 0) Then
  540.         Return
  541.     Else
  542.         FOpen 5, STRING002, 0, 0
  543.         BOOLEAN001 = 0
  544.         :LABEL025
  545.         If (BOOLEAN001) Goto LABEL026
  546.         FGet 5, STRING008
  547.         If (STRING008 == "END") BOOLEAN001 = 1
  548.         If (STRING008 == "000-222-000") Then
  549.             FGet 5, STRING008
  550.             If (STRING008 == 0) Return
  551.             For INTEGER007 = 1 To STRING008
  552.                 FGet 5, TSTRING010(INTEGER007)
  553.             Next
  554.             BOOLEAN001 = 1
  555.         Endif
  556.         Goto LABEL025
  557.         :LABEL026
  558.         FClose 5
  559.         Color 15
  560.         Cls
  561.         FOpen 5, TSTRING004(8), 0, 0
  562.         FGet 5, INTEGER005
  563.         For INTEGER007 = 1 To INTEGER005
  564.             FGet 5, STRING008
  565.             FGet 5, STRING008
  566.             FGet 5, TINTEGER004(INTEGER007 * 2)
  567.             FGet 5, TINTEGER004(INTEGER007 * 2 + 1)
  568.         Next
  569.         FClose 5
  570.         Cls
  571.         DispFile TSTRING004(3), 1
  572.         If (TSTRING003(134) <> "") Then
  573.             TSTRING003(134) = "@X0F"
  574.         Endif
  575.         For INTEGER007 = 1 To INTEGER005
  576.             AnsiPos TINTEGER004(INTEGER007 * 2 + 1), TINTEGER004(INTEGER007 * 2)
  577.             Print TSTRING003(134) + TSTRING010(INTEGER007)
  578.         Next
  579.         AnsiPos 1, TSTRING003(133)
  580.         More
  581.         FClose 5
  582.     Endif
  583.     If (Exist(STRING002) == 0) Then
  584.         Return
  585.     Else
  586.         FOpen 5, STRING002, 0, 0
  587.         BOOLEAN001 = 0
  588.         :LABEL027
  589.         If (BOOLEAN001) Goto LABEL028
  590.         FGet 5, STRING008
  591.         If (STRING008 == "END") BOOLEAN001 = 1
  592.         If (STRING008 == "000-333-000") Then
  593.             FGet 5, STRING008
  594.             If (STRING008 == 0) Return
  595.             For INTEGER007 = 1 To STRING008
  596.                 FGet 5, TSTRING010(INTEGER007)
  597.             Next
  598.             BOOLEAN001 = 1
  599.         Endif
  600.         Goto LABEL027
  601.         :LABEL028
  602.         FClose 5
  603.         Color 15
  604.         Cls
  605.         FOpen 5, TSTRING004(9), 0, 0
  606.         FGet 5, INTEGER005
  607.         For INTEGER007 = 1 To INTEGER005
  608.             FGet 5, STRING008
  609.             FGet 5, STRING008
  610.             FGet 5, TINTEGER004(INTEGER007 * 2)
  611.             FGet 5, TINTEGER004(INTEGER007 * 2 + 1)
  612.         Next
  613.         FClose 5
  614.         Cls
  615.         DispFile TSTRING004(4), 1
  616.         If (TSTRING003(134) <> "") Then
  617.             TSTRING003(134) = "@X0F"
  618.         Endif
  619.         For INTEGER007 = 1 To INTEGER005
  620.             AnsiPos TINTEGER004(INTEGER007 * 2 + 1), TINTEGER004(INTEGER007 * 2)
  621.             Print TSTRING003(134) + TSTRING010(INTEGER007)
  622.         Next
  623.         AnsiPos 1, TSTRING003(133)
  624.         More
  625.         FClose 5
  626.     Endif
  627.     If (Exist(STRING002) == 0) Then
  628.         Return
  629.     Else
  630.         FOpen 5, STRING002, 0, 0
  631.         BOOLEAN001 = 0
  632.         :LABEL029
  633.         If (BOOLEAN001) Goto LABEL030
  634.         FGet 5, STRING008
  635.         If (STRING008 == "END") BOOLEAN001 = 1
  636.         If (STRING008 == "000-444-000") Then
  637.             FGet 5, STRING008
  638.             If (STRING008 == 0) Return
  639.             For INTEGER007 = 1 To STRING008
  640.                 FGet 5, TSTRING010(INTEGER007)
  641.             Next
  642.             BOOLEAN001 = 1
  643.         Endif
  644.         Goto LABEL029
  645.         :LABEL030
  646.         FClose 5
  647.         Color 15
  648.         FOpen 5, TSTRING004(10), 0, 0
  649.         FGet 5, INTEGER005
  650.         For INTEGER007 = 1 To INTEGER005
  651.             FGet 5, STRING008
  652.             FGet 5, STRING008
  653.             FGet 5, TINTEGER004(INTEGER007 * 2)
  654.             FGet 5, TINTEGER004(INTEGER007 * 2 + 1)
  655.         Next
  656.         FClose 5
  657.         FClose 5
  658.         Cls
  659.         DispFile TSTRING004(5), 1
  660.         If (TSTRING003(134) <> "") Then
  661.             TSTRING003(134) = "@X0F"
  662.         Endif
  663.         For INTEGER007 = 1 To INTEGER005
  664.             AnsiPos TINTEGER004(INTEGER007 * 2 + 1), TINTEGER004(INTEGER007 * 2)
  665.             Print TSTRING003(134) + TSTRING010(INTEGER007)
  666.         Next
  667.         AnsiPos 1, TSTRING003(133)
  668.         More
  669.         FClose 5
  670.     Endif
  671.     Return
  672.  
  673. ;------------------------------------------------------------------------------
  674. ;
  675. ; Usage report (before postprocessing)
  676. ;
  677. ; ■ Statements used :
  678. ;
  679. ;    5       End
  680. ;    9       Cls
  681. ;    3       ClrEol
  682. ;    5       More
  683. ;    11      Color 
  684. ;    159     Goto 
  685. ;    160     Let 
  686. ;    33      Print 
  687. ;    4       PrintLn 
  688. ;    117     If 
  689. ;    6       DispFile 
  690. ;    1       FCreate 
  691. ;    17      FOpen 
  692. ;    1       FAppend 
  693. ;    25      FClose 
  694. ;    59      FGet 
  695. ;    12      FPutLn 
  696. ;    1       GetUser
  697. ;    4       PutUser
  698. ;    9       Delete 
  699. ;    1       InputStr 
  700. ;    8       Gosub 
  701. ;    17      Return
  702. ;    1       Shell 
  703. ;    40      AnsiPos 
  704. ;    4       GetAltUser 
  705. ;
  706. ;
  707. ; ■ Functions used :
  708. ;
  709. ;    22      *
  710. ;    120     +
  711. ;    9       -
  712. ;    63      ==
  713. ;    11      <>
  714. ;    32      <
  715. ;    30      <=
  716. ;    3       >
  717. ;    62      >=
  718. ;    100     !
  719. ;    61      &&
  720. ;    35      ||
  721. ;    7       Len(
  722. ;    1       Lower()
  723. ;    20      Upper()
  724. ;    4       Mid()
  725. ;    3       Left()
  726. ;    2       Chr()
  727. ;    14      U_Name()
  728. ;    2       Inkey()
  729. ;    1       Mask_Ascii()
  730. ;    18      PPEPath()
  731. ;    8       Exist()
  732. ;    4       U_RecNum()
  733. ;
  734. ;------------------------------------------------------------------------------
  735. ;
  736. ; Analysis flags : WRS
  737. ;
  738. ; W - Write user ■ 5
  739. ;     Program writes a user record. Although this may be normal for a
  740. ;     User Editor, it may also be a way to modify an account level.
  741. ;     ■ Search for : PUTUSER
  742. ;
  743. ; R - Read user ■ 5
  744. ;     User records are read, this may signify that someone wants to get
  745. ;     various informations about a user (for example his password), but
  746. ;     this may also be normal for a program accessing user records (for
  747. ;     example a User Editor)
  748. ;     ■ Search for : GETALTUSER
  749. ;
  750. ; S - Shell to DOS ■ 5
  751. ;     This may be normal if the PPE need to execute an external command,
  752. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  753. ;     or usefull (sorting, maintenance,...). Check!
  754. ;     ■ Search for : SHELL
  755. ;
  756. ;------------------------------------------------------------------------------
  757. ;
  758. ; Postprocessing report
  759. ;
  760. ;    29      For/Next
  761. ;    1       While/EndWhile
  762. ;    54      If/Then or If/Then/Else
  763. ;    1       Select Case
  764. ;
  765. ;------------------------------------------------------------------------------
  766. ;                 AEGiS Corp - Break the routines, code against the machines!
  767. ;------------------------------------------------------------------------------
  768.